package com.yc.thread;

/**
 * join: 实例方法对象.join()。使一个线程在另一个线程结束后执行，
 * 例在一个线程(此如main)中调用另一个线程的join(,则当前线程(main)阻塞，
 * 让另一个线程先执行后，当前才执行，与优先级无关.
 */
public class Test14_join {
    //main线程
    public static void main(String[] args) throws InterruptedException {
        LifeCircle lc= new LifeCircle();
        System.out.println(lc.isAlive());//线程状态值
        lc.start();
        System.out.println(lc.isAlive());

        lc.join(); //TODO:让lc先运行完，再执行main
        System.out.println("主程序的其他操作");
        System.out.println(lc.isAlive());
    }

}

class LifeCircle extends Thread{
    @Override
    public void run() {
        int i=0;
        while((++i)<10) {
            System.out.println(Thread.currentThread().getName() + ":" + i);
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
